﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;

using System.Text;
using System.Windows.Forms;
using Itegracion.Framework.Forms;

namespace Itegracion.iAlmacen.Forms
{
    public partial class fmDocumento : fmMantenimiento
    {
        protected string idsTipo = "1,2,3,4,5";

        public fmDocumento()
        {
            InitializeComponent();
            Titulo = "Plantilla de Documentos";
            Subtitulo = "Es la plantilla de gestión de documentos";
            tieneDetalle = true;
        }
        protected override void OnAddFields(DataGridView listado, ref ucEdicion propiedades)
        {
            listado
                .AddTextBoxColumn("ID", 50)
                .AddTextBoxColumn("Tipo", 100)
                .AddTextBoxColumn("Fecha", 80)
                .AddTextBoxColumn("Codigo", 100)
                .AddTextBoxColumn("Origen", 200)
                .AddTextBoxColumn("Destino", 200);
            propiedades = new ucDocumento();
            ucDocumento uc = (ucDocumento)propiedades;
        }
        protected override void OnLoadData(DataGridView listado)
        {
            _("Itegracion.iAlmacen", "Documento", "TraerListado", new Element("idTipo", idsTipo))
                .Out(listado);
            _("Itegracion.iAlmacen", "Constante", "TraerSubCombo", new Element("tipo", "TipoDocumento"), new Element("idTipo", idsTipo))
                .Out((this.propiedades as ucDocumento).cbTipo);
        }
        protected override void OnNew(ucEdicion propiedades)
        {
        }
        protected override void OnEdit(string id, DataGridViewCell cell, ucEdicion propiedades)
        {
            ucDocumento uc = (ucDocumento)propiedades;
            _("Itegracion.iAlmacen", "Documento", "Traer", cell)
                .Out(uc.tbID, uc.tbFecha, uc.tbCodigo, uc.cbTipo, uc.tbDocId, uc.tbNombre, uc.tbDireccion, uc.dgvItems);
        }
        protected override void OnAddItem()
        {
            fmSeleccion fm = new fmSeleccion();
            fm.Titulo = "Productos";
            fm.Subtitulo = "Catalogo de Producto";
            fm.listado
                .AddTextBoxColumn("ID", 50)
                .AddTextBoxColumn("Codigo", 80)
                .AddTextBoxColumn("Nombre", 200)
                .AddTextBoxColumn("Marca", 100)
                .AddTextBoxColumn("Precio", "precio_unitario", 80, "##.00");

            fm.listado.AutoGenerateColumns = false;

            _("Itegracion.iAlmacen", "Producto", "TraerListado")
                .Out(fm.listado);

            if (fm.ShowDialog() == DialogResult.OK) {
                ucDocumento uc = (ucDocumento)propiedades;
                if (uc.dgvItems.DataSource == null)
                {
                    DataTable dt = new DataTable();

                    dt.Columns.Add("cantidad");
                    dt.Columns.Add("id");
                    dt.Columns.Add("nombre");
                    dt.Columns.Add("precio_unitario");
                    dt.Columns.Add("idDocumento");
                    uc.dgvItems.DataSource = dt;
                }
                (uc.dgvItems.DataSource as DataTable).Rows.Add(
                    1,
                    fm.Fila["id"],
                    fm.Fila["nombre"],
                    fm.Fila["precio_unitario"],
                    0
                );
                uc.dgvItems.Focus();
                uc.dgvItems.CurrentCell = uc.dgvItems["cantidad", uc.dgvItems.Rows.Count - 1];
            }
        }
    }
}
